class NotAnArray {
  constructor(length) {
    this.length = length;
  }
}

const arr = [0, 1, 2];
arr.constructor = { [Symbol.species]: NotAnArray };
arr.map((i) => i); // NotAnArray { '0': 0, '1': 1, '2': 2, length: 3 }
console.log(arr.map((i) => i))
arr.filter((i) => i); // NotAnArray { '0': 1, '1': 2, length: 0 }
console.log(arr.filter((i) => i))
arr.concat([1, 2]); // NotAnArray { '0': 0, '1': 1, '2': 2, '3': 1, '4': 2, length: 5 }
console.log(arr.concat([1, 2]))
console.log(Array.isArray(arr.concat([1, 2])))
